#pragma once
#include "MyNtCall.h"
#include "singleton.h"

class CPEHook: public Singleton<CPEHook>
{
public:
    CPEHook();
    ~CPEHook();


    void initData(DWORD hh);
    void hookData(HANDLE _fun);
    HANDLE GetHookFun(){ return m_pHookAddress;}
    static SIZE_T WINAPI _MyVQ(
        __in      HANDLE hProcess,
        __in_opt  LPCVOID lpAddress,
        __in      DWORD dwZero,
        __out     PMEMORY_BASIC_INFORMATION lpBuffer,
        __in      SIZE_T dwLength,
        __out     DWORD& pSize
        );
private:
    HANDLE m_pHookAddress;
    HANDLE m_pPEAddress;
    DWORD  m_hSize;
    DWORD  m_hDll;
};